package com.bems.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.bems.common.UtilEnum;
import com.bems.jdbc.common.DBManager;
import com.bems.pojo.Group;
import com.bems.pojo.POJO;
import com.bems.pojo.Template;
import com.bems.pojo.Type;
import com.bems.pojo.User;
import com.bems.service.GroupService;
import com.bems.service.TemplateService;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

import cn.org.ape.BaseAction;

/**
 *  框架
 * @author 陈磊
 *
 */
public class FrameAction extends BaseAction 
{
	
	/**
	 * Bar
	 */
	 public void bar() {
		User user = _user();
		if (user!=null)
		{
			List<Template> templates = user.Templates();
			JsonArray array = new JsonArray();
			for (Template template : templates) 
			{
				
				if(template.getType()==UtilEnum.Template_Type.Bar.getValue())
				{
					Gson gson = new Gson();
					JsonElement element = gson.toJsonTree(template);
					JsonObject jsonObject = element.getAsJsonObject();
					jsonObject.remove("type");
					jsonObject.remove("name");
					jsonObject.remove("___key_id");
					jsonObject.addProperty("id", template.getId());
					//
					array.add(jsonObject);
				}
			}
			
			DBManager.closeConnection();
			printJson(array.toString());
			
		}
	}
	
	 /**
	  * 系统配置
	  */
	 public void sys() 
	 {
		 User user = _user();
		 if (user!=null)
			{
				List<Template> templates = user.Templates();
				JsonArray array = new JsonArray();
				
					for (Template template : templates) 
					{
					
								if(template.getType()==UtilEnum.Template_Type.Sys.getValue())
								{
									Gson gson = new Gson();
									JsonElement element = gson.toJsonTree(template);
									JsonObject jsonObject = element.getAsJsonObject();
									jsonObject.remove("type");
									jsonObject.remove("name");
									jsonObject.remove("___key_id");
									jsonObject.addProperty("id", template.getId());
									if(template.getName().equals("用户信息"))
									{
										GroupService groupService = new GroupService();
										List<Group> groups = groupService.getGroups();
										JsonArray jsonArray = new JsonArray();
										for (Group group : groups) 
										{
											JsonObject object = new JsonObject();
											object.addProperty("id", group.getId());
											object.addProperty("text", group.getName());
											object.addProperty("leaf", true);
											jsonArray .add(object);
											
										}
										jsonObject.add("children", jsonArray);
									}else if(template.getName().equals("供应商"))
									{
										TemplateService templateService = new TemplateService();
										Map<String, Object> map = new HashMap<String, Object>();
										map.put("template_id", template.getId());
										List<Template> temps=templateService.getTemplates(map);
										JsonArray jsonArray = new JsonArray();
										for (Template temp : temps) 
										{
											JsonObject object = new JsonObject();
											object.addProperty("id", temp.getId());
											object.addProperty("text", temp.getName());
											object.addProperty("leaf", true);
											jsonArray .add(object);
											
										}
										jsonObject.add("children", jsonArray);
										//jsonObject.addProperty("leaf", true);
									}
									else if(template.getName().equals("其他"))
									{
										TemplateService templateService = new TemplateService();
										Map<String, Object> map = new HashMap<String, Object>();
										map.put("template_id", template.getId());
										List<Template> temps=templateService.getTemplates(map);
										JsonArray jsonArray = new JsonArray();
										for (Template temp : temps) 
										{
											JsonObject object = new JsonObject();
											object.addProperty("id", temp.getId());
											object.addProperty("text", temp.getName());
											object.addProperty("leaf", true);
											jsonArray .add(object);
											
										}
										jsonObject.add("children", jsonArray);
										//jsonObject.addProperty("leaf", true);
									}
									//jsonObject.addProperty("leaf", true);
									//
									array.add(jsonObject);
								}
						}
					DBManager.closeConnection();
				printJson(array.toString());
			}
			
	}
	 
	 
	 /**
	  * 查询
	  */
	 public void inquiry()
	 {
		 User user = _user();
		 if (user!=null)
			{
				List<Template> templates = user.Templates();
				JsonArray array = new JsonArray();
				
					for (Template template : templates) 
					{
					
								if(template.getType()==UtilEnum.Template_Type.Inquiry.getValue())
								{
									Gson gson = new Gson();
									JsonElement element = gson.toJsonTree(template);
									JsonObject jsonObject = element.getAsJsonObject();
									jsonObject.remove("type");
									jsonObject.remove("name");
									jsonObject.remove("___key_id");
									jsonObject.addProperty("id", template.getId());
									if(template.getName().equals("库存器材"))
									{
										 List<Type> types = (List<Type>) new Type().list();
										
										JsonArray jsonArray = new JsonArray();
										for (Type type : types) 
										{
											JsonObject object = new JsonObject();
											object.addProperty("id", type.getId());
											object.addProperty("text", type.getName());
											object.addProperty("leaf", true);
											jsonArray .add(object);
											
										}
										jsonObject.add("children", jsonArray);
									}else if(template.getName().equals("使用器材"))
									{
										
										JsonArray jsonArray = new JsonArray();
										
											JsonObject object =  new JsonObject();
											object.addProperty("id", "123");
											object.addProperty("text", "入库");
											object.addProperty("leaf", true);
											jsonArray .add(object);
											JsonObject object1 =  new JsonObject();
											object1.addProperty("id", "124");
											object1.addProperty("text", "出库");
											object1.addProperty("leaf", true);
											jsonArray .add(object1);
											JsonObject object2 =  new JsonObject();
											object2.addProperty("id", "125");
											object2.addProperty("text", "报废");
											object2.addProperty("leaf", true);
											jsonArray .add(object2);
											JsonObject object3 =  new JsonObject();
											object3.addProperty("id", "126");
											object3.addProperty("text", "回库");
											object3.addProperty("leaf", true);
											jsonArray .add(object3);
											
										
										jsonObject.add("children", jsonArray);
										//jsonObject.addProperty("leaf", true);
									}
									else if(template.getName().equals("费用信息"))
									{
								
										JsonArray jsonArray = new JsonArray();
										
											JsonObject object = new JsonObject();
											object.addProperty("id", "133");
											object.addProperty("text", "查询");
											object.addProperty("leaf", true);
											jsonArray .add(object);
											JsonObject object1 =  new JsonObject();
											object1.addProperty("id", "134");
											object1.addProperty("text", "统计");
											object1.addProperty("leaf", true);
											jsonArray .add(object1);
//											JsonObject object2 =  new JsonObject();
//											object2.addProperty("id", "135");
//											object2.addProperty("text", "供应商查询");
//											object2.addProperty("leaf", true);
//											jsonArray .add(object2);
											
										
										jsonObject.add("children", jsonArray);
										//jsonObject.addProperty("leaf", true);
									}
									//jsonObject.addProperty("leaf", true);
									//
									array.add(jsonObject);
								}
						}
					DBManager.closeConnection();
				printJson(array.toString());
			}
	}
	 
	/**
	 * 取得session中的user
	 * @return
	 */
	private User _user()
	{
	     return (User) session.getAttribute("user");	
	}

}
